// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.modules.mapper;

import java.util.List;
import java.util.Map;

import com.liuxinlong.modules.material.dto.MaterialResumeChangeDto;
import com.liuxinlong.modules.material.dto.MaterialStatusImportDto;
import org.apache.ibatis.annotations.Param;

import com.liuxinlong.modules.entity.MocDetail;
import com.baomidou.mybatisplus.mapper.BaseMapper;

/**
 * 类描述
 * <p>
 * 此类关联设计的功能
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022年2月22日
 */
public interface MocDetailMapper extends BaseMapper<MocDetail> {
	/**
	 * 分页查询变更记录详情信息
	 * 
	 * @param queryParam 请求信息
	 * @return 变更记录详情信息列表
	 */
	 List<MocDetail> pageDetailList(@Param("queryParam") Map<String, Object> queryParam);

	/**
	 * 查询变更记录详情信息总数
	 * 
	 * @param queryParam 请求信息
	 * @return 变更记录详情信息总数
	 */
	 int getDetailCount(@Param("queryParam") Map<String, Object> queryParam);

	/**
	 * 查询变更记录详情信息
	 *
	 * @param material 物料号
	 * @param region   作用域
	 * @return 变更记录详情信息列表
	 */
	List<MaterialResumeChangeDto> getDetailsByMaterial(@Param("material")String material, @Param("region") String region);

	/**
	 * 查询物料状态变更记录
	 *
	 * @param startTime 起始时间
	 * @return 物料状态变更记录
	 */
	List<MaterialStatusImportDto> getMaterialStatusChanges(@Param("startTime")String startTime);


	/**
	 * 查询变更记录详情信息
	 *
	 * @param materialList 物料号
	 * @param region   作用域
	 * @return 变更记录详情信息列表
	 */
	List<MaterialResumeChangeDto> getDetailsByChildMaterial(@Param("list")List<String> materialList, @Param("region") String region);

	/**
	 * 根据变更记录id删除变更明细
	 *
	 * @param recordId 变更记录id
	 */
	void deleteByRecordId(@Param("recordId")String recordId);

	/**
	 * 根据物料号查询变更详情列表
	 *
	 * @param materialList 物料号
	 * @return map
	 */
	List<MocDetail> getDetailsByMaterials(@Param("list") List<String> materialList);
}
